[Chapter 16] The null.mc File and m4
Author: Bryan Costales & Eric Allman
Date: 1999-01-06T18:39:37Z

#

| Chapter 16 |

# 16. The null.mc File and m4

Contents:
The cf/cf Directory
The null.mc File
Run m4
Test the Result
Qualify All Addresses?
Things to Try

In the preceding chapters of this tutorial we developed a minimal client.cf file as an aid in teaching the ins and outs of a small configuration file. In this chapter we show you how to construct a more practical file.

## 16.1 The cf/cf Directory

A large part of the V8 sendmail distribution is dedicated to the automated creation of configuration files. Recall (Section 2.1, "Get the Source") that the base sendmail distribution looks like this:

>     FAQ            READ_ME        contrib        mailstats      rmail          test
>     KNOWNBUGS      RELEASE_NOTES  doc            makemap        smrsh
>     Makefile       cf             mail.local     praliases      src

Up to now, you have been working in the `src` directory. Now we will examine the `cf` directory:

>     % cd cf
>     % ls
>     README      domain      hack        mailer      sh
>     cf          feature     m4          ostype      siteconfig

The file README contains all the latest information about the technique that we are about to present. Read it now to get a feel for what is about to happen and to become aware of any late-breaking changes.

Now change into the cf directory and look around. All the files in it that end in `.mc` are m4(1) configuration source files. Read a few to satisfy your curiosity. We will be creating our own soon.

>     % cd cf
>     % ls
>     Makefile           cs-sunos4.1.mc         generic-sunos4.1.mc    s2k-osf1.mc
>     Makefile.dist      cs-ultrix4.mc          generic-ultrix4.mc     s2k-ultrix4.mc
>     chez.cs.mc         cyrusproto.mc          huginn.cs.mc           tcpproto.mc
>     clientproto.mc     generic-bsd4.4.mc      mail.cs.mc             ucbarpa.mc
>     cs-hpux10.mc       generic-hpux10.mc      mail.eecs.mc           ucbvax.mc
>     cs-hpux9.mc        generic-hpux9.mc       mailspool.cs.mc        uucpproto.mc
>     cs-osf1.mc         generic-osf1.mc        obj                    vangogh.cs.mc
>     cs-solaris2.mc     generic-solaris2.mc    python.cs.mc

15.7 Things to Try |  | 16.2 The null.mc File